From Cppreference
|
|
|
|
|
|
|
| template< class >
class result_of; //not defined
| (1)
| (C++11 feature)
|
|
|
|
| template< class F, class... ArgTypes >
class result_of<F(ArgTypes...)>;
| (2)
| (C++11 feature)
|
|
|
|
Deduces the return type of a function call expression at compile type.
[edit] Member types
|
|
| Member type
| Definition
|
|
|
type
| the return type of the function F if called with the arguments ArgTypes...
|
[edit] Equivalent definition
template<class>
class result_of;
template<class F, class... ArgTypes>
struct result_of<F(ArgTypes...)>
{
typedef decltype(
std::declval<F>()(std::declval<ArgTypes>()...)
) type;
};
|
[edit] Example
struct S {
double operator()(char, int&);
};
int main()
{
std::result_of<S(char, int&)>::type f = 3.14; // f has type double
}
[edit] See also
|
|
|
| obtains the type of expression in unevaluated context (function template)
|